package cn.bird.storm.validated.paramcheck;


import cn.bird.storm.validated.paramcheck.inter.ICheckBean;
import cn.bird.storm.validated.paramcheck.inter.ICheckModel;

import java.util.function.Supplier;

public interface CheckTrait {
    /**
     * @param key                  校验模式的名称
     * @param iCheckBean           检验组装bean
     * @param defaultModelSupplier 当ParamCheckComponent.getCheckNode().getModelMap()中没有的{@link ICheckModel} 需要赋默认值
     */
    @SuppressWarnings("unchecked")
    default  <T> ParameterCheckBuilder richCheckModelMap(String key, ICheckBean<T> iCheckBean, Supplier<ICheckModel<T>> defaultModelSupplier) {
        return RichUtil.richCheckModelMap(key, iCheckBean, defaultModelSupplier);
    }
}
